Pocket API + Python 學習筆記

原先我只了解evernote可以離線閱讀文章,但evernote對於多裝置實在是不方便。

直到有天,我在知乎看到大神都是怎麼收藏好文章的。

知乎好文 - 你是怎么使用 Pocket (Read it Later)、Instapaper、Readability 和 Evernote 的?

於是我開始使用了Pocket。慢慢的先從Chrome的擴充功能每個URL保存到Pocket,然後手機應用也同步了,用到後來我希望將imgur及自己經常訂閱Rss也能同步到Pocket。

因此看了Pocket API認為可行,以下是自己使用Pocket API加上Python的過程。

Pocket API官方文檔

申請Pocket API

下面我使用postman工具操作Post請求

建立pocket app 取得CONSUMER KEY

先到這個創建網址,建立一個新的APP,輸入名稱,並如下圖勾選創建

創建網址:https://getpocket.com/developer/apps/new

完成後會得到”CONSUMER KEY”

我的CONSUMER KEY為74297-3a202d306550d2de94dce8b3

oauth 取得code

根據官網提示需要用POST請求提交取得code

請求網址:https://getpocket.com/v3/oauth/request

  • 說明
1
2
consumer_key=<consumer_key>
redirect_uri=<app_name>:authorizationFinished
  • 請求取得code

我的資訊
consumer_key=74297-3a202d306550d2de94dce8b3
redirect_uri=MarioPocket3:authorizationFinished

在POST請求之後會得到code

1
code=a916cd07-8306-86ea-b213-1f6af0

激活授權

將一些驗證到的訊息,輸入到網址中取得授權

  • 網址說明
1
https://getpocket.com/auth/authorize?request_token=<上一步取得的code>&redirect_uri=<app_name>:authorizationFinished
  • 取得授權

https://getpocket.com/auth/authorize?request_token=a916cd07-8306-86ea-b213-1f6af0&redirect_uri=MarioPocket3:authorizationFinished

取得access_token

根據官網提示需要用POST請求提交取得access_token
請求網址:https://getpocket.com/v3/oauth/authorize

將資訊內容提交請求

consumer_key=74297-3a202d306550d2de94dce8b3
code=a916cd07-8306-86ea-b213-1f6af0

得到access_token

1
access_token=cc2b9561-999a-1261-d58e-63c3d2&username=noyoung.guo%40gmail.com

能夠正常取得access_token就算是完成了,接下來試著新增URL看看…

正式使用Pocket API

利用Pocket API 新增URL

Pocket API add文檔

Method URL:https://getpocket.com/v3/add

1
2
3
url=https://getpocket.com/developer/docs/v3/add
consumer_key=74297-3a202d306550d2de94dce8b3
access_token=cc2b9561-999a-1261-d58e-63c3d2&username=noyoung.guo%40gmail.com

成功!!

測試新增沒問題,開始使用python看看。

Python 調用 Pocket API

環境

1
2
python 3.6.2
requests

新增

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import requests


def add(url, tags=None):
payload = {'consumer_key': '74312-5815e4d014e7e0e046c7cc85',
'access_token': '7acb01d7-f791-5e24-c663-632499',
'url': url,
'tags': tags}
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
r = requests.post('https://getpocket.com/v3/add', data=payload, headers=headers)
print(r.json()['item']['title'])

# 測試加入一個文章urlhttps://finance.technews.tw/2018/01/23/lg-innotek-2017-q4/
add("https://finance.technews.tw/2018/01/23/lg-innotek-2017-q4/",tags="ITnews")

剛剛新增的已經加進來囉

參考